package com.cskaoyan.javase.array._0introduction;
/**
 * 数组的引入
 * 引例：
 * 假设一个班上有80个人，现在需要统计，某一门课程的平均成绩，是否需要定义80个变量？
 * 编写一个程序，需要储存12个月份的天数，是否要定义12个变量呢？
 * 编写一个扑克程序，需要储存54张扑克的信息，是否要定义54个变量？
 * 如果程序需要储存上成千上万的数据，程序员是不是也要逐一定义成千上万个变量呢？
 *
 * 很明显，如果程序需要多少数据，就要定义多少个变量，也太过于麻烦了
 * 并且多个变量单独存在没有任何关联，也不方便管理和维护。
 *
 * 这样就好比，去超市购物，谁有人会把东西一个一个带回家。
 * 购物需要"袋子"装东西，Java变量也需要一个容器来存放它们。
 * 使用容器存储数据,数据之间就有联系了,就方便维护和管理,可以极大的增强程序的扩展性和可维护性.
 *
 * Java的容器有很多，最基本的容器就是数组（Array），定义一个数组，就可以存储很多数据。
 * 除此之外,Java中还存在高级容器—集合，实际开发中，集合会用的更频繁，几乎不可能直接用数组
 * （集合容器是在数组的基础上发展而来的，数组是基础）
 *
 * 数组的定义：
 * 数组是存储多个，具有相同数据类型的数据元素的有序容器（集合）。
 *
 * 定义中的重点是：
 *      1.能够存储多个数据元素
 *      2.数组中存储的元素必须是相同的数据类型（可以是基本数据类型，也可以是引用数据类型）
 *          并且数组的数据类型就是数组中存放的元素的数据类型
 *          比如int类型数组，就只能存储int类型元素
 *          比如String类型数组，就只能存储String类型元素
 *      3.数组中的元素是严格有序的：
 *          数组中的每个存储单元，都有唯一编号，这个编号，从左向右，从0开始编号，最大值是数组长度-1
 *              [0,length-1]
 *          这种编号，专业的术语称之为下标或者索引（index）
 *
 * 注意：
 *      1.数组本身是一种引用数据类型，定义数组，也是定义一个变量
 *          定义一个数组变量，就可以存储很多个元素（变量）
 *          数组是典型的引用数据类型
 *      2.数组里面，可以存储基本数据类型，也可以存储引用数据类型，
 *          但是一个数组里面只能存储同一种数据类型。
 *
 * 数组的特点：
 * 优点：随机访问，（通过下标）访问和修改的效率很高
 * 缺点：
 *      数组在内存中一旦创建完毕，除非销毁这个数
 *      否则数组的存储结构是不能改变的（数组的长度一旦确定，不可更改）
 *      这意味着使用数组很麻烦，数组长度要事先设定好，长了浪费空间，短了就没法用，所以数组在实际开发中很少直接使用
 *
 *
 *
 * @since 11:25
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}
